package com.nineclock.attendance.service;

import com.nineclock.attendance.dto.AttendPunchDTO;
import com.nineclock.attendance.dto.AttendPunchUserWholeDayDTO;

import java.io.IOException;
import java.util.List;

public interface AttendPunchService {

    /**
     * 移动端打卡
     *
     * @param attendPunchDTO
     */
    public void punch(AttendPunchDTO attendPunchDTO);

    /**
     * 根据系统用户ID获取打卡数据
     *
     * @return
     */
    public AttendPunchUserWholeDayDTO getPunchRecord();

    /**
     * 查询指定时间段内的考勤列表数据
     *
     * @param startTime
     * @param endTime
     * @return
     */
    public List<AttendPunchDTO> queryMembers(String startTime, String endTime);

    /**
     * 导出指定时间段内的指定员工的考勤数据
     *
     * @param startTime
     * @param endTime
     * @throws IOException
     */
    public void export(String startTime, String endTime) throws IOException;

    /**
     * 根据企业ID查询该企业本月考勤信息, 并生成Excel文件
     * @param companyId
     * @return
     */
    public String generateExcelReportByCompanyId(Long companyId) throws IOException;
}   